There are occasions when it is appropriate to count up or down from a starting point in a counting scheme, rather than counting an absolute value of occurrences. One example of such an occasion is encountered in telephone switching, such as ground key switching operations.
In ground key switching operations, a telephone exchange grounds the TIP circuit to the central office to indicate a desire to communicate after any required handshake operation is completed. This is part of normal telephone system central office (PBX) communications using TIP and RING lines.
Ground key switch bounce occurs because of noise occasioned by the switch operation. Switch bounce is generally handled by introducing a delay in the switch operation to allow the switched signal to settle out after switch actuation. Ground key bounce is also complicated by the presence of AC noise which may be induced in the telephone system from power lines or other radiant electromagnetic source. Such induced AC noise is not uncommon since the telephone lines in the telephone system may be one to two miles long, or even longer. Thus, the telephone lines often encounter many environmental opportunities for induction of AC noise.
The signal induced on telephone lines from AC noise is not usually a full-wave AC signal. Normally, such induced AC noise is nearly half-rectified signal because when one telephone line (TIP or RING) of the telephone system is grounded, only one amplifier of the system is working. The system can only source current, it cannot sink current. Thus, such an induced AC signal is difficult to filter and any filtering will yield a DC offset in the filter output. Therefore, simply crossing a threshold in a ground key actuation is not a true indication of triggering (i.e., ground key operation).
However, noting that a threshold value (such as a threshold voltage) has been surpassed and has remained surpassed for a predetermined time can be a true indication of triggering despite the presence of an induced DC signal from filtering operations. Since the frequency of a telephone system is usually specified and is therefore known (50 Hz in Europe, 60 Hz in the United States), counting time intervals established by line voltage effects the required timed counting. Triggering may be considered to have occurred, for example, when a count exceeds a predetermined amount over a predetermined number of time periods. An up/down counter is particularly useful in such situations.
A gray code counter is one type of up/down counter which provides for switching one individual bit for each up- or down-count. For example, a three-bit gray code counter would count as follows: ##STR1##
In the above example, the counting scheme is structured to treat the most significant (third) bit as a "sign" bit. That is, the most significant bit changes from 0 to 1 as one counts from positive to negative and vice versa. The counter is cyclical, so one must provide enough bits for the gray code counter to prevent counting "around" into negative or positive "territory". Such a safeguard against cyclical counting can be designed by one skilled in the art because one knows for a given application the count intervals to be anticipated, the frequency of the signals to be counted, and similar parameters which will dictate the range of counting required for the particular application.
Gray code counters are known. However, prior art gray code suffers from the design shortcomings of many other circuits: inefficient layout, non-modular design requiring major redesign for accommodating a greater counting capacity, high part count, and similar general design characteristics.
Therefore, there is a need for a gray code up/down counter which is modular in design to accommodate ease of adding counting capacity to n bits, which is layout-efficient in its occupancy of "real estate" when embodied in silicon; and which has a lesser part count than previously encountered in gray code up/down counters.